using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; namespace SuperPolarity { class BasicGenerator { public enum Ships : byte { Ship, Scout, Battlecruiser }; protected Ships ShipType; protected SuperPolarity Game; protected int ScoreThreshold; protected int Rate; protected int CurrentTime; protected Random Randomizer; protected Vector2 Position; public void Initialize(SuperPolarity game, Vector2 position, Ships shipType, int rate, int scoreThreshold) { Game = game; ShipType = shipType; ScoreThreshold = scoreThreshold; Rate = rate; Randomizer = new Random(); Position = position; CurrentTime = rate; } public void Update(GameTime gameTime) { if (ActorManager.CountBaddies() > 50) { return; } if (Game.Player.Score >= ScoreThreshold) { CurrentTime = CurrentTime + gameTime.ElapsedGameTime.Milliseconds; if (CurrentTime >= Rate) { CurrentTime = 0; Spawn(); } } } protected void Spawn() { var polarity = Ship.Polarity.Positive; if (Randomizer.Next(2) == 1) { polarity = Ship.Polarity.Negative; } if (ShipType == Ships.Ship) { Renderer.CheckIn(ActorFactory.CreateShip(polarity, Position)); } if (ShipType == Ships.Scout) { Renderer.CheckIn(ActorFactory.CreateScout(polarity, Position)); } if (ShipType == Ships.Battlecruiser) { Renderer.CheckIn(ActorFactory.CreateCruiser(polarity, Position)); } } } }